/*
 * Strip.h
 *
 *  Created on: 25/ott/2013
 *      Author: angelo
 */

#ifndef STRIP_H_
#define STRIP_H_

#include <stdlib.h>
#include <stdio.h>
#include <list>

#include "Survivor.h"
#include "StemIsland.h"
#include "Config.h"

class Strip {
public:
	Strip(double topleftYPoint, double width);
	virtual ~Strip();

	void addSurvivor(Survivor *survivor);
	void removeSurvivor(Survivor *survivor);

	void calculateCoveringNodes(list<StemIsland *> &risCoverNode, int nRadio, double alpha,
			double d, bool useDiskAlgo, int algoToUse, Strip *upperStrip);

private:
	void calculate_MC_SCR(list<StemIsland *> &risCoverNode, int nRadio, double alpha, double d);
	void calculate_MC_SCD(list<StemIsland *> &risCoverNode, int nRadio, double alpha, double d);
	void calculate_MC_SCD_EX(list<StemIsland *> &risCoverNode, int nRadio, double alpha, double d, Strip *upperStrip);

private:

	double topleftYPoint;
	double width;

public:
	list<Survivor *> mySurvivors;
};

#endif /* STRIP_H_ */
